import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_excel('餐厅订单信息.xlsx')
plt.rcParams['font.sans-serif']='SimHei'
plt.figure(figsize=(12,5))
df_temp=df.groupby('菜品名称').agg('sum',numeric_only=True)
df_temp=df_temp.sort_values('数量',ascending=False).head(10)
plt.bar(df_temp.index,df_temp['数量'],width=0.3)
plt.xlabel('菜品名称')
plt.ylabel('菜品数量')
plt.title('一周菜品点单数量前10名柱状图')
plt.figure(figsize=(8,5))
groups = df.groupby('店铺名')
shop_name = []
for group in groups:
    shop_name.append(group[0])
    df_temp = pd.DataFrame(group[1])
    df_temp = df_temp.groupby('日期').agg('sum', numeric_only=True)
    plt.plot(df_temp.index, df_temp['消费金额'])
'''groups = df.groupby('店铺名')  # 按“店铺名”分组（比如把“总店”“分店1”“分店2”的数据分开）
shop_name = []  # 建一个空列表，用来存所有店铺的名字（后面做图例用）
for group in groups:  # 循环遍历每个店铺的数据
    shop_name.append(group[0])  # 把当前店铺的名字加到列表里（比如先加“总店”，再加“分店1”）
    df_temp = pd.DataFrame(group[1])  # 把当前店铺的所有数据做成一个临时表格df_temp
    df_temp = df_temp.groupby('日期').agg('sum', numeric_only=True)  # 按“日期”分组，把每天的消费金额加起来（比如“总店”1号总共卖了多少钱）
    plt.plot(df_temp.index, df_temp['消费金额'])  # 画折线图：x轴是日期，y轴是当天消费金额，每个店铺画一条线
plt.legend(shop_name)  # 显示图例（就是图旁边的“总店”“分店1”标签，告诉我们哪条线对应哪个店）'''
plt.legend(shop_name)
plt.xlabel('日期')
plt.ylabel('消费金额/元')
plt.title('一周各分店每天消费金额折线图')
plt.figure()
df_temp=df.groupby('会员星级').agg('sum',numeric_only=True)
plt.pie(df_temp['消费金额'],labels=df_temp.index,autopct='%.2f%%')
plt.title('一周不同星级会员消费金额饼状图')
plt.show()